Users of physical or virtual machines commonly install software packages, including package updates, to physical or virtual machines. The software packages can contain a set of related files chosen to perform a given application or task, such as, for example, a group of software applications, drivers, and/or other resources used to install and use messaging applications. In instances, a software package can contain application software, operating system software, drivers, patches, and/or other software components grouped as a logical set.
Software package update managers exist to help a user initiate and perform software package updates, such as, for example, the “yum” (Yellowdog update manager) package update manager available from Red Hat Inc., and others. In general, available software package managers are configured to interact with the set of installed packages on a client and with one or more software package repositories, to directly connect to those databases and download available package updates. In cases, the package update can be formatted as a single combined file containing the various component files, and can be compressed for easier transmission.
The task of managing a network of physical and possibly virtual machines can be complicated by the need to identify and track the population of the machines under management, and the various software package complements installed on those machines. The machines under management and their package complements may need to be identified and tracked for a variety of purposes, including, for instance, to identify and schedule package updates, activate and deactivate machines assigned to networks including on-premise and cloud networks, to perform maintenance, or other package or network management tasks.
In various networks, for example including those having multiple network administrators, or servers or consoles used for management, the task of maintaining an inventory of machines, the software packages installed on those machines, the files contained in packages, or other resources may become increasingly difficult to coordinate. In cases, network administrators or other users may wish to perform a discovery or inventory process on machines in the managed network. The discovery or inventory results may be used to build an inventory of packages that are installed on all machines of the managed network, on a total or aggregate basis.
An administrator or other user may further wish to group or characterize machines in the managed network based on selected package sets or files contained within those sets. They may wish to group or identify sets of machines hosting defined packages, whether or not machines or groups of machines were initially configured or arranged to be related by their software complement or not. For example, an administrator may wish to identify all machines in a managed network having a set of installed packages containing software resources, such as specified compilers or debuggers, for an application development product or project. The administrator or other user may wish to locate all machines currently hosting that set of packages or application, without having to analyze all machines present on the network.
In cases, the administrator or other user might want to determine the population of all such machines on the managed network, whether or not those machines were initially provisioned or organized together. This might take place in a scenario where developer workstations are added over time to an engineering team, for example.
Moreover, the administrator or other user may wish to discover and characterize machines or groups of machines having different or selectable combinations of package sets, which the user may flexibly or dynamically define. For instance, an administrator or other user may in one regard wish to generate a view or “slice” of the managed network to determine which machines contain a combination of video or audio production software, media player(s), and/or other packages or software and may therefore be functioning as digital media workstations.
The user may also wish, at the same or other time, to determine which machines in the managed network also or instead are currently hosting a defined set of email, chat, voice over IP (Internet protocol), social network, and/or other packages or component software, and which subset of the managed network may therefore be acting as messaging platforms. In cases, some or all machines hosting one package subset of interest may overlap with machines hosting a second package subset within the same managed network, or may represent distinct groupings requiring different or separate updates or other maintenance. In current package management platforms, the administrator or other user may not be provided with tools or capability to create, group and manage machines in the network based on arbitrary and/or freely selectable package subsets, across all machines in the managed network. It may be desirable to provide systems and methods for generating package profiles in software package repositories using selective subsets of packages, in which an administrator or other user can access the entire population of packages installed in a managed network, and select a variety of subsets of packages in the network by which to group, organize, and manage client machines.